THIS TOOL IS NOT SUPPORTED BY MICROSOFT CORPORATION. IT IS PROVIDED "AS IS" BECAUSE WE BELIEVE IT MAY BE USEFUL TO YOU. WE REGRET THAT MICROSOFT IS UNABLE TO SUPPORT OR ASSIST YOU SHOULD YOU HAVE PROBLEMS USING THIS TOOL. There is no licensing fee or arrangement. You can use and copy Autoduck freely - if you distribute it, please distribute the entire release directory or .ZIP file, including documentation, source code, etc. AUTODUCK ======= To install Autoduck, copy AUTODUCK.EXE and AUTODUCK.FMT to a directory referenced by your PATH environment variable. You can also copy the CONTENTS.D file, which provides a "template" help contents page. See AUTODUCK.HLP or AUTODUCK.DOC for documentation. The EXAMPLE subdirectory contains a sample development project. The makefile is only set up for Autoduck; you can use it as a template. Autoduck Release Notes ---------------------------------------------------------------------------- Release 2.0.96.0406 ---------------------------------------------------------------------------- * New Java parsing support and Java tags. See documentation for details. * #define support added to @const tag (thanks to Casey klim@sgi.net) * New abstracted source parser - look for more parsing fixes coming soon. * Fixed debug assert message on resource load. ---------------------------------------------------------------------------- Release 2.0.96.1220 ---------------------------------------------------------------------------- * Bug fix: - @mfunc parser incorrectly returns an error code on a multiline member function, rather than returning a "continue to next line" code. Result was that member function declarations with the return value on a separate line from the function were not parsing. Fixed. ---------------------------------------------------------------------------- Release 2.0.96.1127 ---------------------------------------------------------------------------- I'm afraid I skipped documenting a few of the maintenance releases. There have been a bunch of small changes since release 2.08 - some of these are features (mostly aimed at better HTML support), many bug fixes, and some housekeeping items. Major items that I can remember (sorry... ;-): * Housekeeping stuff: - Error strings are now stored in a Win32 resource string table. - Proper versioning information added to the executable. - New versioning scheme: major.minor.year.buildnumber * HTML improvements: - Changed [INDEX] format file section to use a single .format= entry to specify formatting string for individual indexes. This was necessary because HTML requires link names & link context strings to be defined in reverse order to Help RTF. The .prename, .postname, .precontext, and .postcontext entries are now obsolete - Autoduck generates an error message if it finds one of these in the format file. You must update to the .FORMAT= entry for index format strings. See the helpfile (INDEX section topic) for details. - Fixed a bug in paragraph pre/post text processing - the post text was not being correctly output, which posed a problem in HTML. - Added a [TOKENS] section .CONTEXT= entry to specify alternate field types (contexts) for example versus "body" text. This is necessary in HTML as preformatted (example) text does not require a paragraph break after each line, as *is* required in RTF. See the helpfile for details (TOKENS format file section). - Numerous fixes & additions to HTML.FMT. The output is looking fairly respectable now... ---------------------------------------------------------------------------- Release 2.08 ---------------------------------------------------------------------------- * New parsing type "meth" to allow automatic source parsing of OLE method declarations via @meth paragraph tag. ---------------------------------------------------------------------------- Release 2.07 ---------------------------------------------------------------------------- * New @union tag with parsing support for C++ style union decls. ---------------------------------------------------------------------------- Release 2.04 ---------------------------------------------------------------------------- Bug fix release for 2.00. One new feature: * @parmopt tag for parameters with values: @parmopt type | name | default value | description Includes autoparsing support, use it the same way you use @parm. ---------------------------------------------------------------------------- Release 2.0 ---------------------------------------------------------------------------- Huge new release with many new features. See the help file for details. Highlights: * Numerous fixes to source parser. * Visual Basic source parsing support for subs, functions, types. * Support for class enumeration and class structure definitions, via @menum and @mstruct topic tags. See help file topic "Nesting Topics Inside Topics" for details. * The log file is no longer required, assuming all topics referenced in the build are included in the build. In other words, you don't have to run Autoduck in two passes to generate hypertext links. See MAKEDOCS.MAK in the example project for the new model. * Topic lists (indexes/tables of contents) can now be inserted in any topic and no longer need to reside in the format file. A new index file, CONTENTS.D, has been added to replace the index definition formerly contained in the [FILE] section of the format file. To generate a table of contents topic for your help file, include CONTENTS.D in your build. * Extraction sets can now be specified using simple expressions including OR (|), AND (&), and parentheses. * Unified format-string model now; you can use the format string constructs anywhere in the format file. * New format-string codes $!c and $!n for referencing topic context string and name, respectively. * New [TOKENS] section for defining output tokens for a given output type... this should break the hard-coding of RTF as an output type, and allow alternate formats such as HTML... if some enterprising individual would be interested in writing an HTML format file... ---------------------------------------------------------------------------- Release 1.11.04 ---------------------------------------------------------------------------- Bug fixes: * Failing to read [EXTENSIONS] section across supplemental format file. * Failing to properly read multiline class member declarations. * Improperly handling @doc extraction flags enclosed within a single line /* */ comment block. Format file: * Adjusted @access, @cmember tags so Class Member headings are output in correct order when @access is present. New features: Format file: * Added textw tag for inserting bitmaps inline. ---------------------------------------------------------------------------- Release 1.11 ---------------------------------------------------------------------------- New features: * Added [EXTENSIONS] section to FMT file to define source types of various filename extensions. * Changed directory search behavior for FMT files - if a full path or relative path is not specified, Autoduck searches the current directory, AUTODUCK.EXE directory, and search path for the specified format file. Format file: * Added @base paragraph tag implementation for use in COM @interface topics. Bug fixes: * Reading past end of line when reading log entry at end of file * Tweaked the comment extraction code to allow single-line /* */ style comments. * Preserve indenting of example code within /* */ comment blocks. ---------------------------------------------------------------------------- Release 1.10.03 Jan. 23, 1995 ---------------------------------------------------------------------------- Bug fixes: * Bug in /S supplemental format file - uninitialized structure caused problems in DOS version. * Index lookup was failing when supplemental fmt file used. * @const tag was omitted from fmt file * Parsing problems w/@cmember parsing in operator functions. * Improper parsing of C++ destructor members using the @cmember tag. ---------------------------------------------------------------------------- Release 1.10 Jan. 9, 1995 ---------------------------------------------------------------------------- New features: * Response files now supported on command line. Input files and options can be specified in a file - reference the file with @FILE, e.g. AUTODUCK /v @files.lst * New support for supplemental format files. Now, you can define deltas to the standard format file, rather than editing the AUTODUCK.FMT file each new release. There are two ways to do this: - Use the /S command line option to specify a supplemental formatting file. Tags defined there override (or add to) those in the main formatting file. - Sections can be repeated in the format file - for example, supplemental paragraph tag definitions can be inserted at the front of the standard formatting file. * New tags: @CONST topic tag with parsing of C++ constant declarations. @GLOBALV paragraph tag for documenting global variables @CONSUMES paragraph tag for identifying interfaces that an object consumes. Bug fixes: * Syntax warnings now output to STDOUT. * Log files can now exceed 64K in the 32-bit version only. ---------------------------------------------------------------------------- Release 1.09.07 Nov. 21w, 1994 ---------------------------------------------------------------------------- Bug fixes: * Removed references to MSGRIDA1.DOT in format file. * Fixed invalid memory reference bug. ---------------------------------------------------------------------------- Release 1.09.03 Nov. 15, 1994 ---------------------------------------------------------------------------- New features: * New @parmvar tag for documenting variable parameter lists. See help for details. * Changed weird header text in print output - you can now customize the header by overriding the "doc_header" constant on the command line, e.g.: autoduck /d "doc_header=My Header Text" ... Bug fixes: * Problems parsing assorted C++ template constructs were fixed. ---------------------------------------------------------------------------- Release 1.091 Nov. 6, 1994 ---------------------------------------------------------------------------- New features: * Format file updates for OLE tags: @method: added interface name as field @property: added interface name as field @event: new topic tag for OLE events @abstract: new topic tag for OLE abstract objects (an object that defines a standard set of interfaces to support) : added interface name as field : added interface name as field : new text tag for OLE events * C++ tags now support templates. * New tags for defining template arguments: @tcarg template class argument @tfarg template function argument * Cool new @cmember tag - replacement for @member - automatically parses C++ members from the class header. New "classmember" parsing type defined for .PARSESOURCE entry in format file. * The @enum tag now parses the enumeration type name from the definition immediately following the tag comment block. New "enum" parsing type for .PARSESOURCE entry in format file. * New topic-name token $